perm filename ERRSUB[AP,SYS] blob
sn#000458 filedate 1972-08-23 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 Subroutine to append an error message to the file ERRORS.
00006 ENDMK
⊗;
;Subroutine to append an error message to the file ERRORS.
comment ⊗ The following ACs are needed:
A,B,C,C+1,C+2,CNT,BPTR,CHAR,AC1,AC2. B+1 and B+2 are assumed to be C and C+1. ⊗
ADDERR: CALL [SIXBIT /RESET/]
MOVEI B,1
MOVEI CNT,10
AGAINE: INIT 1,0
SIXBIT /DSK/
XWD ERRBFO,0
HALT .-3
SETZM ERRORF+1
SETZM ERRORF+2
SETZM ERRORF+3
ENTER 1,ERRORF
JRST [RELEAS 1,
SOJLE CNT,SPLIT
CALL B,[SIXBIT /SLEEP/]
JRST AGAINE]
INIT 2,0
SIXBIT /DSK/
ERRBFI
HALT .-3
SETZM ERRORF+3
LOOKUP 2,ERRORF
JRST COPIED
COPYER: SOSG ERRBFI+2
IN 2,
JRST [ILDB CHAR,ERRBFI+1
JUMPE CHAR,COPIED
SOSG ERRBFO+2
OUT 1,
JRST [IDPB CHAR,ERRBFO+1
JRST COPYER]
FOO: HALT FOO]
STATO 2,20000
HALT .
COPIED: RELEAS 2,
CALL B,[SIXBIT /DATE/]
CALL C,[SIXBIT /TIMER/]
IDIVI C,=60*=3600
IDIVI C+1,=3600
IDIVI C+1,=10
HRLZI AC1,40B24 ;put a blank in AC1
ADDI AC1,60(C+2) ;ONES PLACE OF MINUTES
ROT AC1,-7
ADDI AC1,60(C+1) ;TENS PLACE OF MINUTES
ROT AC1,-7
IDIVI C,=10
ADDI AC1,60(C+1) ;ONES PLACE OF HOURS
ROT AC1,-7
ADDI AC1,60(C) ;TENS PLACE OF HOURS
ROT AC1,-7
IDIVI B,=31
ADDI B+1,1
IDIVI B+1,=10
MOVEI AC2,60(B+2) ;ONES PLACE OF DAY
ROT AC2,-7
ADDI AC2,60(B+1) ;TENS PLACE OF DAY
ROT AC2,-16
ADD AC2,[ASCII /-/] ;PUT "-" BETWEEN MONTH AND DAY
IDIVI B,=12
ADDI B+1,1
IDIVI B+1,=10
ADDI AC2,60(B+2) ;ONES PLACE OF MONTH
ROT AC2,-7
ADDI AC2,60(B+1) ;TENS PLACE OF MONTH
ROT AC2,-7
MOVE BPTR,[POINT 7,AC1]
MOVEI CNT,=10 ;put 10 chars into output buffer
DAYTIM: ILDB CHAR,BPTR ;output the time, month, and day
SOSG ERRBFO+2
OUT 1,
JRST [IDPB CHAR,ERRBFO+1
SOJG CNT,DAYTIM
JRST ADDMSG]
HALT .
ADDMSG: HRLI A,440700 ;output error message
MESSAG: ILDB CHAR,A
SOSG ERRBFO+2
OUT 1,
JRST [IDPB CHAR,ERRBFO+1
JUMPN CHAR,MESSAG
JRST CLOSEM]
HALT .
CLOSEM: RELEAS 1,
SPLIT: CALL [SIXBIT /EXIT/]